package com.onlygx.dva.web.base.controller;

import cn.hutool.json.JSONUtil;
import com.onlygx.dva.common.entity.common.RT;
import com.onlygx.dva.common.properties.CommonCoreProperties;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.context.refresh.ContextRefresher;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 瞳见科技
 *
 * @author : GaoXiang
 * 时间 : 2021/12/20
 * 介绍 :
 */
@RestController
@RequiredArgsConstructor
@Slf4j
@Api(tags = "FREE - 配置文件调试")
@RequestMapping("/free/properties")
public class FreePropertiesController {


    final ContextRefresher contextRefresher;

    final CommonCoreProperties coreProperties;

    /**
     * 跳转接口路径
     * 作者：高祥
     * 时间：2021年12月20日16:50:45
     */
    @GetMapping("/showCoreProperties")
    public RT<CommonCoreProperties> showCoreProperties(){
        log.info(JSONUtil.toJsonStr(coreProperties));
        return RT.success("操作成功，请查看日志打印内容");
    }

    /**
     * 刷新配置
     * 2023年8月2日16:39:26 高祥
     */
    @GetMapping("/refresh")
    public RT<CommonCoreProperties> indexSwagger(){
        // 新开一个线程进行配置信息的刷新，避免阻塞其他请求的处理
        new Thread(contextRefresher::refresh).start();
        // 返回刷新后的配置信息
        return showCoreProperties();
    }

}
